package com.example.Handler;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import com.examplee.username.httpfrist_01.R;


/*
* 更新UI的方法
* 1、在Thread中调用handler1()方法
* 2. 利用sendEmptyMessage发送消息，在handler中的handleMessage中接收
* 3、利用runOnUiThread（）方法
* 4、利用View的post方法
* */
public class HandlergengxinActivity extends AppCompatActivity {
TextView textView;
    Handler handler=new Handler(){

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            textView.setText("这是第二种方法");
        }
    };
    public void handler1(){
        handler.post(new Runnable() {
            @Override
            public void run() {
                textView.setText("OK");
            }
        });
    }
    public void handler2(){
        handler.sendEmptyMessage(1);
    }
//    第三种
    private void updateUI(){
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                textView.setText("这是第三种方法");
            }
        });
    }
//    第四种
    private void viewUI(){
        textView.post(new Runnable() {
            @Override
            public void run() {
                textView.setText("这是第四种方法");
            }
        });
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handlergengxin);
        textView= (TextView) findViewById(R.id.textView);
        new Thread(){

            @Override
            public void run() {
                textView.setText("在这里更新UI不会报错,是因为没有写到 Thread.sleep(3000)中");
//                try {
//                    Thread.sleep(3000);
////                  handler2();
////                    updateUI();
//                    viewUI();
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
            }
        }.start();
    }
}
